﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BeachRunner.BeachRunner
{
    /// <summary>
    /// Zum steuern des Spielers
    /// 
    /// Autor: OLD (Mattis Hänel)
    /// </summary>
    public abstract class PlayerController
    {
        /// <summary>
        /// True - Wenn der Spieler sich nach Links bewegen soll.
        /// </summary>
        public abstract bool IsMoovingLeft
        {
            get;
        }

        /// <summary>
        /// True - Wenn der Spieler sich nach rechts bewegen soll.
        /// </summary>
        public abstract bool IsMoovingRight
        {
            get;
        }

        /// <summary>
        /// Wurde im letzten Frame gesprungen?
        /// </summary>
        private bool jumpingOld;
        /// <summary>
        /// Wurde gesprungen? 
        /// True beim Übergang von nicht Springen zu Springen
        /// </summary>
        public bool IsJumpingEdge
        {
            get
            {
                if (!jumpingOld && IsJumping)
                {
                    jumpingOld = IsJumping;
                    return true;
                }

                jumpingOld = IsJumping;
                return false;
            }
        }

        /// <summary>
        /// Wird gesprungen?
        /// </summary>
        public abstract bool IsJumping
        {
            get;
        }

        /// <summary>
        /// Wird sich gedukt?
        /// </summary>
        public abstract bool IsCrouching
        {
            get;
        }

        /// <summary>
        /// Sind die Hände oben?
        /// </summary>
        public abstract bool IsHandUp
        {
            get;
        }
    }
}
